package com.行为型模型.W解释器模式;

public class Test {
    public static void main(String[] args) {
        Context context=new Context();

        Variable a= new Variable("a");
        Variable b= new Variable("b");
        Variable c= new Variable("c");
        Variable d= new Variable("d");

        context.assign(a,1);
        context.assign(b,2);
        context.assign(c,3);
        context.assign(d,4);

        //获取抽象语法树  a + b - c + d
        //本质为递归调用
        AbstractExpression expression=new Plus(a,new Plus(new Minus(b,c),d));
        int result = expression.interpret(context);

        System.out.println(expression+"="+result);


    }


}
